﻿using System;
using System.Collections.Generic;
using System.Linq;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.GamerServices;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Media;

namespace Pacocofose
{
    public class Personagem
    {
        #region Variaveis

        Texture2D Personagem01, Personagem2, PersonagemPc, Personagem2Pc, MarcacaoPlayer1, MarcacaoPlayer2, MarcacaoPc, Player1WinT, VoceVenceuT, Player2WinT, GameOverT, EmpatouT;
        Texture2D amendoim_c1, amendoim_c2;
        Texture2D amendoim_pulo1, amendoim_pulo2, amendoim_pulo3, amendoim_pulo_final;
        public static Texture2D Contagem1, Contagem2, Contagem3;
        Rectangle RectPersonagem, RectPersonagem2;
        public static Vector2 VetorPersonagem;
        public static Vector2 VetorPersonagem2;
        SpriteFont SpriteFont1;
        SpriteFont SpriteFont2;
        public static BoundingBox BdPersonagem;
        public static BoundingBox BdPersonagem2;
        int nextFrame = 0;
        int nextFrame2 = 0;
        int frame = 0;
        int frame2 = 0;
        public static bool ParaTerreno = false;
        public static bool ParaTerreno2 = false;

        public static bool ComputerWin = false; 
        public static bool Player1Win = false; 
        public static bool Player2Win = false;
        public static bool Player1Ganhou = false;

        public static bool Contagem = false;
        bool Colidindobarra = true;
        bool ColidindobarraDireito = true;
        bool Colidindobarra2 = true;
        bool Colidindobarra2Direito = true;
        bool Colidindobarra3 = true;
        bool Colidindobarra3Direito = true;
        bool Colidindobarra4 = true;
        bool Colidindobarra4Direito = true;
        bool Colidindobarra5 = true;
        bool Colidindobarra5Direito = true;

        bool Colidindobarra0 = true;
        bool Colidindobarra0Direito = true;
        bool Colidindobarra02 = true;
        bool Colidindobarra02Direito = true;
        bool Colidindobarra03 = true;
        bool Colidindobarra03Direito = true;
        bool Colidindobarra04 = true;
        bool Colidindobarra04Direito = true;
        bool Colidindobarra05 = true;
        bool Colidindobarra05Direito = true;


        public static float timeRemaining;
        public static float timeRemaining2;
        public static float timeRemaining3;
        public static float timeRemaining4;
        public static float timeRemaining5;
        public static float timeRemaining6;
        public static float timeRemaining7;
        public static float timeRemaining8;
        public static float timeRemaining9;
        public static float timeRemaining10;
        public static float timeRemaining11;
        public static float timeRemaining12;
        float timer = 2f;
        float timer2 = 0.1f;
        float timer3 = 0.1f;
        float timer4 = 0.3f;
        float timer5 = 0.2f;
        float timer6 = 0.05f;
        float timer7 = 0.2f;
        float timer8 = 0.05f;
        public static float timer12 = 3f;
        float VelocidadePersonagem = 5;
        float VelocidadePersonagem2 = 4.5f;

        public static bool GameOver = false;
        public static bool Win = false;
        public static bool PararC = false;
        public static bool AnimacaoWin = false;
        public static bool AnimacaoPulo = false;
        public static bool AnimacaoPulo1 = false;
        public static bool AnimacaoPulo2 = false;
        public static bool AnimacaoPulo3 = false;
        public static bool AnimacaoPulo4 = false;

        public static bool PararColisao1 = false;
        public static bool PararColisao2 = false;
        public static bool PararColisao3 = false;
        public static bool PararColisao4 = false;
        public static bool PararColisao5 = false;

        public static bool PararColisao12 = false;
        public static bool PararColisao22 = false;
        public static bool PararColisao32 = false;
        public static bool PararColisao42 = false;
        public static bool PararColisao52 = false;

        public static bool Direita = true;
        public static bool Direita2 = true;
        public static bool ColisaoBarra = false;
        public static bool ColisaoBarraDireito = false;
        public static bool ColisaoBarra2 = false;
        public static bool ColisaoBarra2Direito = false;
        public static bool ColisaoBarra3 = false;
        public static bool ColisaoBarra3Direito = false;
        public static bool ColisaoBarra4 = false;
        public static bool ColisaoBarra4Direito = false;
        public static bool ColisaoBarra5 = false;
        public static bool ColisaoBarra5Direito = false;

        public static bool ColisaoBarra02 = false;
        public static bool ColisaoBarraDireito2 = false;
        public static bool ColisaoBarra22 = false;
        public static bool ColisaoBarra2Direito2 = false;
        public static bool ColisaoBarra32 = false;
        public static bool ColisaoBarra3Direito2 = false;
        public static bool ColisaoBarra42 = false;
        public static bool ColisaoBarra4Direito2 = false;
        public static bool ColisaoBarra52 = false;
        public static bool ColisaoBarra5Direito2 = false;

        public static bool DestravarBarra1 = true;
        public static bool DestravarBarra2 = false;
        public static bool DestravarBarra3 = false;
        public static bool DestravarBarra4 = false;
        public static bool DestravarBarra5 = false;
        #endregion

        public Personagem(Game game)
        {
            #region Vetores

            VetorPersonagem = new Vector2(10, 170);
            VetorPersonagem2 = new Vector2(20, 170);
            timeRemaining = timer;
            timeRemaining4 = timer4;
            timeRemaining5 = timer5;
            timeRemaining6 = timer6;
            timeRemaining7 = timer7;
            timeRemaining8 = timer8;
            timeRemaining12 = timer12;

            #endregion

            #region Texturas/Fontes
            Personagem01 = game.Content.Load<Texture2D>("sprites_final");
            Personagem2 = game.Content.Load<Texture2D>("sprites_final2");
            PersonagemPc = game.Content.Load<Texture2D>("sprites_final");
            Personagem2Pc = game.Content.Load<Texture2D>("sprites_final2");
            amendoim_c1 = game.Content.Load<Texture2D>("amendoim_comemoracao1");
            amendoim_c2 = game.Content.Load<Texture2D>("amendoim_comemoracao2");
            amendoim_pulo1 = game.Content.Load<Texture2D>("amendoim_pulo1");
            amendoim_pulo2 = game.Content.Load<Texture2D>("amendoim_pulo2");
            amendoim_pulo3 = game.Content.Load<Texture2D>("amendoim_pulo3");
            amendoim_pulo_final = game.Content.Load<Texture2D>("amendoim_pulo_final");
            SpriteFont1 = game.Content.Load<SpriteFont>("SpriteFont1");
            SpriteFont2 = game.Content.Load<SpriteFont>("SpriteFont2");
            MarcacaoPlayer1 = game.Content.Load<Texture2D>("P1");
            MarcacaoPlayer2 = game.Content.Load<Texture2D>("P2");
            MarcacaoPc = game.Content.Load<Texture2D>("Pc");
            Contagem1 = game.Content.Load<Texture2D>("Contagem_1_");
            Contagem2 = game.Content.Load<Texture2D>("Contagem_2_");
            Contagem3 = game.Content.Load<Texture2D>("Contagem_3_");
            VoceVenceuT = game.Content.Load<Texture2D>(@"VoceVenceu");
            GameOverT = game.Content.Load<Texture2D>(@"GameOver");
            Player1WinT = game.Content.Load<Texture2D>(@"Player1Win");
            Player2WinT = game.Content.Load<Texture2D>(@"Player2Win");
            EmpatouT = game.Content.Load<Texture2D>(@"Empatou");
            #endregion
        }


        public void Update(GameTime gameTime)
        {

            #region Restart            
            if (Instrucoes.ResetarPersonagens)
            {                
                nextFrame = 0;
                nextFrame2 = 0;
                frame = 0;
                frame2 = 0;
                GameOver = false;
         Win = false;
         PararC = false;
         AnimacaoWin = false;
         AnimacaoPulo = false;
         AnimacaoPulo1 = false;
         AnimacaoPulo2 = false;
         AnimacaoPulo3 = false;
         AnimacaoPulo4 = false;
         PararColisao1 = false;
         PararColisao2 = false;
         PararColisao3 = false;
         PararColisao4 = false;
         PararColisao5 = false;
         PararColisao12 = false;
         PararColisao22 = false;
         PararColisao32 = false;
         PararColisao42 = false;
         PararColisao52 = false;
         Direita = true;
         Direita2 = true;
         ColisaoBarra = false;
         ColisaoBarraDireito = false;
         ColisaoBarra2 = false;
         ColisaoBarra2Direito = false;
         ColisaoBarra3 = false;
         ColisaoBarra3Direito = false;
         ColisaoBarra4 = false;
         ColisaoBarra4Direito = false;
         ColisaoBarra5 = false;
         ColisaoBarra5Direito = false;
         ColisaoBarra02 = false;
         ColisaoBarraDireito2 = false;
         ColisaoBarra22 = false;
         ColisaoBarra2Direito2 = false;
         ColisaoBarra32 = false;
         ColisaoBarra3Direito2 = false;
         ColisaoBarra42 = false;
         ColisaoBarra4Direito2 = false;
         ColisaoBarra52 = false;
         ColisaoBarra5Direito2 = false;
         DestravarBarra1 = true;
         DestravarBarra2 = false;
         DestravarBarra3 = false;
         DestravarBarra4 = false;
         DestravarBarra5 = false;
                VetorPersonagem = new Vector2(10, 170);
                VetorPersonagem2 = new Vector2(20, 170);
                timeRemaining = timer;
                timeRemaining4 = timer4;
                timeRemaining5 = timer5;
                timeRemaining6 = timer6;
                timeRemaining7 = timer7;
                timeRemaining8 = timer8;
                Instrucoes.ResetarPersonagens = false;
                Contagem = true;
            }
            if (Contagem == true && Instrucoes.NaoAparecerContagem == false)
            {
                timeRemaining12 = MathHelper.Max(0, timeRemaining12 - (float)gameTime.ElapsedGameTime.TotalSeconds);
            }
            if (timeRemaining12 == 0.0f)
                Contagem = false;

            #endregion
            
            #region Rectangle's
            RectPersonagem = new Rectangle(nextFrame, 0, 237, 350);
            RectPersonagem2 = new Rectangle(nextFrame2, 0, 237, 350);
            #endregion

            KeyboardState keyboardstate = Keyboard.GetState();

            #region Input's Player1
            if (Instrucoes.SinglePlayer2 && timeRemaining12 == 0.0f || Instrucoes.MultiPlayer2 && timeRemaining12 == 0.0f)
            {
                if (VetorPersonagem.Y > -70 && VetorPersonagem2.Y > -70)
                {

                    if (Terreno.VetorFundo.Y < -599)
                    {
                        Terreno.VetorFundo.Y = 600;
                    }
                    if (Terreno.VetorFundo.Y < -600)
                    {
                        Terreno.VetorFundo.Y = -600;
                    }

                    if (Terreno.VetorFundo2.Y < -599)
                    {
                        Terreno.VetorFundo2.Y = 600;
                    }
                    if (Terreno.VetorFundo2.Y < -600)
                    {
                        Terreno.VetorFundo2.Y = -600;
                    }

                    if (keyboardstate.IsKeyDown(Keys.Right) && keyboardstate.IsKeyDown(Keys.Left))
                    {
                        frame = 0;
                        nextFrame = 237;
                    }


                    if (keyboardstate.IsKeyDown(Keys.Right) && keyboardstate.IsKeyUp(Keys.Left) && VetorPersonagem.X > -5 && VetorPersonagem.X < 747)
                    {


                        Direita = true;
                        VetorPersonagem.X += VelocidadePersonagem + Itens.supervelocidade;
                        if (timeRemaining2 == 0.0f)
                        {
                            nextFrame += 237;
                            frame += 1;
                            timeRemaining2 = timer2;
                            if (frame == 5)
                            {
                                frame = 0;
                                nextFrame = 237;
                            }
                        }

                    }

                    if (keyboardstate.IsKeyUp(Keys.Right) && keyboardstate.IsKeyUp(Keys.Left))
                    {
                        frame = 0;
                        nextFrame = 0;
                    }

                    if (VetorPersonagem.X >= 747)
                        VetorPersonagem.X = 745;


                    if (keyboardstate.IsKeyDown(Keys.Left) && keyboardstate.IsKeyUp(Keys.Right) && VetorPersonagem.X > -5 && VetorPersonagem.X < 747)
                    {
                        Direita = false;
                        VetorPersonagem.X -= VelocidadePersonagem + Itens.supervelocidade;
                        if (timeRemaining2 == 0.0f)
                        {
                            nextFrame += 237;
                            frame += 1;
                            timeRemaining2 = timer2;
                            if (frame == 5)
                            {
                                frame = 0;
                                nextFrame = 237;
                            }
                        }

                    }


                    if (VetorPersonagem.X <= -5)
                        VetorPersonagem.X = -3;
                }
            #endregion

            #region timeReaining's
                timeRemaining = MathHelper.Max(0, timeRemaining - (float)gameTime.ElapsedGameTime.TotalSeconds);
                timeRemaining2 = MathHelper.Max(0, timeRemaining2 - (float)gameTime.ElapsedGameTime.TotalSeconds);
                timeRemaining3 = MathHelper.Max(0, timeRemaining3 - (float)gameTime.ElapsedGameTime.TotalSeconds);
                timeRemaining4 = MathHelper.Max(0, timeRemaining4 - (float)gameTime.ElapsedGameTime.TotalSeconds);                
            }
                #endregion

            #region Input's Player2
            if (Instrucoes.MultiPlayer2 && timeRemaining12 == 0.0f)
            {
                if (VetorPersonagem.Y > -70 && VetorPersonagem2.Y > -70)
                {
                    if (keyboardstate.IsKeyDown(Keys.D) && keyboardstate.IsKeyDown(Keys.A))
                    {
                        frame2 = 0;
                        nextFrame2 = 237;
                    }


                    if (keyboardstate.IsKeyDown(Keys.D) && keyboardstate.IsKeyUp(Keys.A) && VetorPersonagem2.X > -5 && VetorPersonagem2.X < 747)
                    {


                        Direita2 = true;
                        VetorPersonagem2.X += VelocidadePersonagem;
                        if (timeRemaining3 == 0.0f)
                        {
                            nextFrame2 += 237;
                            frame2 += 1;
                            timeRemaining3 = timer3;
                            if (frame2 == 5)
                            {
                                frame2 = 0;
                                nextFrame2 = 237;
                            }
                        }

                    }

                    if (keyboardstate.IsKeyUp(Keys.D) && keyboardstate.IsKeyUp(Keys.A))
                    {
                        frame2 = 0;
                        nextFrame2 = 0;
                    }

                    if (VetorPersonagem2.X >= 747)
                        VetorPersonagem2.X = 745;


                    if (keyboardstate.IsKeyDown(Keys.A) && keyboardstate.IsKeyUp(Keys.D) && VetorPersonagem2.X > -5 && VetorPersonagem2.X < 747)
                    {
                        Direita2 = false;
                        VetorPersonagem2.X -= VelocidadePersonagem;
                        if (timeRemaining3 == 0.0f)
                        {
                            nextFrame2 += 237;
                            frame2 += 1;
                            timeRemaining3 = timer3;
                            if (frame2 == 5)
                            {
                                frame2 = 0;
                                nextFrame2 = 237;
                            }
                        }

                    }


                    if (VetorPersonagem2.X <= -5)
                        VetorPersonagem2.X = -3;
                }
            }
#endregion

            #region Colisao

            BdPersonagem = new BoundingBox(new Vector3(VetorPersonagem.X + 5, VetorPersonagem.Y + 70, 0), new Vector3(VetorPersonagem.X + 45, VetorPersonagem.Y + 80, 0));

            BdPersonagem2 = new BoundingBox(new Vector3(VetorPersonagem2.X + 5, VetorPersonagem2.Y + 70, 0), new Vector3(VetorPersonagem2.X + 45, VetorPersonagem2.Y + 80, 0));



            ColisaoBarra = false;
            ColisaoBarraDireito = false;
            ColisaoBarra2 = false;
            ColisaoBarra2Direito = false;
            ColisaoBarra3 = false;
            ColisaoBarra3Direito = false;
            ColisaoBarra4 = false;
            ColisaoBarra4Direito = false;
            ColisaoBarra5 = false;
            ColisaoBarra5Direito = false;

            ColisaoBarra02 = false;
            ColisaoBarraDireito2 = false;
            ColisaoBarra22 = false;
            ColisaoBarra2Direito2 = false;
            ColisaoBarra32 = false;
            ColisaoBarra3Direito2 = false;
            ColisaoBarra42 = false;
            ColisaoBarra4Direito2 = false;
            ColisaoBarra52 = false;
            ColisaoBarra5Direito2 = false;
            

            if (PararC == false)
            {
                if (BdPersonagem.Intersects(Terreno.BdTerreno))
                {
                    ColisaoBarra = true;
                }
                if (BdPersonagem.Intersects(Terreno.BdTerrenoDireito))
                {
                    ColisaoBarraDireito = true;
                }

                if (BdPersonagem.Intersects(Terreno.BdTerreno2))
                {
                    ColisaoBarra2 = true;
                }
                if (BdPersonagem.Intersects(Terreno.BdTerreno2Direito))
                {
                    ColisaoBarra2Direito = true;
                }

                if (BdPersonagem.Intersects(Terreno.BdTerreno3))
                {
                    ColisaoBarra3 = true;
                }
                if (BdPersonagem.Intersects(Terreno.BdTerreno3Direito))
                {
                    ColisaoBarra3Direito = true;
                }

                if (BdPersonagem.Intersects(Terreno.BdTerreno4))
                {
                    ColisaoBarra4 = true;
                }
                if (BdPersonagem.Intersects(Terreno.BdTerreno4Direito))
                {
                    ColisaoBarra4Direito = true;
                }

                if (BdPersonagem.Intersects(Terreno.BdTerreno5))
                {
                    ColisaoBarra5 = true;
                }
                if (BdPersonagem.Intersects(Terreno.BdTerreno5Direito))
                {
                    ColisaoBarra5Direito = true;
                }
                
                if (timeRemaining == 0.0f)
                {
                    if (ColisaoBarra)
                    {
                        Colidindobarra5 = true;
                        Colidindobarra5Direito = true;
                        VetorPersonagem.Y -= (float)Terreno.Velocidade;
                        if (Colidindobarra)
                            VetorPersonagem.Y = Terreno.VetorTerreno.Y - 80;
                        PararColisao1 = true;
                    }  
                    else if (!Colidindobarra2 && !Colidindobarra2Direito && !Colidindobarra3 && !Colidindobarra3Direito && !Colidindobarra4 && !Colidindobarra4Direito && !Colidindobarra5 && !Colidindobarra5Direito )
                        Colidindobarra = false;

                    if (ColisaoBarraDireito)
                    {
                        Colidindobarra = true;
                        VetorPersonagem.Y -= (float)Terreno.Velocidade;
                        if (ColidindobarraDireito)
                            VetorPersonagem.Y = Terreno.VetorTerrenoDireito.Y - 80;
                        PararColisao1 = true;
                    }
                    else if (!Colidindobarra2 && !Colidindobarra2Direito && !Colidindobarra3 && !Colidindobarra3Direito && !Colidindobarra4 && !Colidindobarra4Direito && !Colidindobarra5 && !Colidindobarra5Direito)
                        ColidindobarraDireito = false;

                    if (ColisaoBarra2)
                    {
                        ColidindobarraDireito = true;
                        VetorPersonagem.Y -= (float)Terreno.Velocidade;
                        if (Colidindobarra2)
                            VetorPersonagem.Y = Terreno.VetorTerreno2.Y - 80;
                        PararColisao2 = true;
                    }
                    else if (!Colidindobarra && !ColidindobarraDireito && !Colidindobarra3 && !Colidindobarra3Direito && !Colidindobarra4 && !Colidindobarra4Direito && !Colidindobarra5 && !Colidindobarra5Direito)
                        Colidindobarra2 = false;

                    if (ColisaoBarra2Direito)
                    {
                        Colidindobarra2 = true;
                        VetorPersonagem.Y -= (float)Terreno.Velocidade;
                        if (Colidindobarra2Direito)
                            VetorPersonagem.Y = Terreno.VetorTerreno2Direito.Y - 80;
                        PararColisao2 = true;
                    }
                    else if (!Colidindobarra && !ColidindobarraDireito && !Colidindobarra3 && !Colidindobarra3Direito && !Colidindobarra4 && !Colidindobarra4Direito && !Colidindobarra5 && !Colidindobarra5Direito)
                        Colidindobarra2Direito = false;

                    if (ColisaoBarra3)
                    {
                        Colidindobarra2Direito = true;
                        VetorPersonagem.Y -= (float)Terreno.Velocidade;
                        if (Colidindobarra3)
                            VetorPersonagem.Y = Terreno.VetorTerreno3.Y - 80;
                        PararColisao3 = true;
                    }
                    else if (!Colidindobarra2 && !Colidindobarra2Direito && !Colidindobarra && !ColidindobarraDireito && !Colidindobarra4 && !Colidindobarra4Direito && !Colidindobarra5 && !Colidindobarra5Direito)
                        Colidindobarra3 = false;

                    if (ColisaoBarra3Direito)
                    {
                        Colidindobarra3 = true;
                        VetorPersonagem.Y -= (float)Terreno.Velocidade;
                        if (Colidindobarra3Direito)
                            VetorPersonagem.Y = Terreno.VetorTerreno3Direito.Y - 80;
                        PararColisao3 = true;
                    }
                    else if (!Colidindobarra2 && !Colidindobarra2Direito && !Colidindobarra && !ColidindobarraDireito && !Colidindobarra4 && !Colidindobarra4Direito && !Colidindobarra5 && !Colidindobarra5Direito)
                        Colidindobarra3Direito = false;

                    if (ColisaoBarra4)
                    {
                        Colidindobarra3Direito = true;
                        VetorPersonagem.Y -= (float)Terreno.Velocidade;
                        if (Colidindobarra4)
                            VetorPersonagem.Y = Terreno.VetorTerreno4.Y - 80;
                        PararColisao4 = true;
                    }
                    else if (!Colidindobarra2 && !Colidindobarra2Direito && !Colidindobarra3 && !Colidindobarra3Direito && !Colidindobarra && !ColidindobarraDireito && !Colidindobarra5 && !Colidindobarra5Direito)
                        Colidindobarra4 = false;

                    if (ColisaoBarra4Direito)
                    {
                        Colidindobarra4 = true;
                        VetorPersonagem.Y -= (float)Terreno.Velocidade;
                        if (Colidindobarra4Direito)
                            VetorPersonagem.Y = Terreno.VetorTerreno4Direito.Y - 80;
                        PararColisao4 = true;
                    }
                    else if (!Colidindobarra2 && !Colidindobarra2Direito && !Colidindobarra3 && !Colidindobarra3Direito && !Colidindobarra && !ColidindobarraDireito && !Colidindobarra5 && !Colidindobarra5Direito)
                        Colidindobarra4Direito = false;

                    if (ColisaoBarra5)
                    {
                        Colidindobarra4Direito = true;
                        VetorPersonagem.Y -= (float)Terreno.Velocidade;
                        if (Colidindobarra5Direito)
                            VetorPersonagem.Y = Terreno.VetorTerreno5.Y - 80;
                        PararColisao5 = true;
                    }
                    else if (!Colidindobarra2 && !Colidindobarra2Direito && !Colidindobarra3 && !Colidindobarra3Direito && !Colidindobarra4 && !Colidindobarra4Direito && !Colidindobarra && !ColidindobarraDireito)
                        Colidindobarra5Direito = false;

                    if (ColisaoBarra5Direito)
                    {
                        Colidindobarra5Direito = true;
                        VetorPersonagem.Y -= (float)Terreno.Velocidade;
                        if (Colidindobarra5Direito)
                            VetorPersonagem.Y = Terreno.VetorTerreno5Direito.Y - 80;
                        PararColisao5 = true;
                    }
                    else
                        Colidindobarra5Direito = false;

                }


                //Player2
                if (BdPersonagem2.Intersects(Terreno.BdTerreno))
                {
                    ColisaoBarra02 = true;
                }
                if (BdPersonagem2.Intersects(Terreno.BdTerrenoDireito))
                {
                    ColisaoBarraDireito2 = true;
                }

                if (BdPersonagem2.Intersects(Terreno.BdTerreno2))
                {
                    ColisaoBarra22 = true;
                }
                if (BdPersonagem2.Intersects(Terreno.BdTerreno2Direito))
                {
                    ColisaoBarra2Direito2 = true;
                }

                if (BdPersonagem2.Intersects(Terreno.BdTerreno3))
                {
                    ColisaoBarra32 = true;
                }
                if (BdPersonagem2.Intersects(Terreno.BdTerreno3Direito))
                {
                    ColisaoBarra3Direito2 = true;
                }

                if (BdPersonagem2.Intersects(Terreno.BdTerreno4))
                {
                    ColisaoBarra42 = true;
                }
                if (BdPersonagem2.Intersects(Terreno.BdTerreno4Direito))
                {
                    ColisaoBarra4Direito2 = true;
                }

                if (BdPersonagem2.Intersects(Terreno.BdTerreno5))
                {
                    ColisaoBarra52 = true;
                }
                if (BdPersonagem2.Intersects(Terreno.BdTerreno5Direito))
                {
                    ColisaoBarra5Direito2 = true;
                }

                if (timeRemaining == 0.0f)
                {
                    if (ColisaoBarra02)
                    {
                        Colidindobarra05 = true;
                        Colidindobarra05Direito = true;
                        VetorPersonagem2.Y -= (float)Terreno.Velocidade;
                        if (Colidindobarra0)
                            VetorPersonagem2.Y = Terreno.VetorTerreno.Y - 80;
                        PararColisao12 = true;
                    }
                    else
                        Colidindobarra0 = false;

                    if (ColisaoBarraDireito2)
                    {
                        Colidindobarra0 = true;
                        VetorPersonagem2.Y -= (float)Terreno.Velocidade;
                        if (Colidindobarra0Direito)
                            VetorPersonagem2.Y = Terreno.VetorTerrenoDireito.Y - 80;
                        PararColisao12 = true;
                    }
                    else 
                        Colidindobarra0Direito = false;

                    if (ColisaoBarra22)
                    {
                        Colidindobarra0Direito = true;
                        VetorPersonagem2.Y -= (float)Terreno.Velocidade;
                        if (Colidindobarra02)
                            VetorPersonagem2.Y = Terreno.VetorTerreno2.Y - 80;
                        PararColisao22 = true;
                    }
                    else
                        Colidindobarra02 = false;

                    if (ColisaoBarra2Direito2)
                    {
                        Colidindobarra02 = true;
                        VetorPersonagem2.Y -= (float)Terreno.Velocidade;
                        if (Colidindobarra02Direito)
                            VetorPersonagem2.Y = Terreno.VetorTerreno2Direito.Y - 80;
                        PararColisao22 = true;
                    }
                    else
                        Colidindobarra02Direito = false;

                    if (ColisaoBarra32)
                    {
                        Colidindobarra02Direito = true;
                        VetorPersonagem2.Y -= (float)Terreno.Velocidade;
                        if (Colidindobarra03)
                            VetorPersonagem2.Y = Terreno.VetorTerreno3.Y - 80;
                        PararColisao32 = true;
                    }
                    else
                        Colidindobarra03 = false;

                    if (ColisaoBarra3Direito2)
                    {
                        Colidindobarra03 = true;
                        VetorPersonagem2.Y -= (float)Terreno.Velocidade;
                        if (Colidindobarra03Direito)
                            VetorPersonagem2.Y = Terreno.VetorTerreno3Direito.Y - 80;
                        PararColisao32 = true;
                    }
                    else
                        Colidindobarra03Direito = false;

                    if (ColisaoBarra42)
                    {
                        Colidindobarra03Direito = true;
                        VetorPersonagem2.Y -= (float)Terreno.Velocidade;
                        if (Colidindobarra04)
                            VetorPersonagem2.Y = Terreno.VetorTerreno4.Y - 80;
                        PararColisao42 = true;
                    }
                    else
                        Colidindobarra04 = false;

                    if (ColisaoBarra4Direito2)
                    {
                        Colidindobarra04 = true;
                        VetorPersonagem2.Y -= (float)Terreno.Velocidade;
                        if (Colidindobarra04Direito)
                            VetorPersonagem2.Y = Terreno.VetorTerreno4Direito.Y - 80;
                        PararColisao42 = true;
                    }
                    else
                        Colidindobarra04Direito = false;

                    if (ColisaoBarra52)
                    {
                        Colidindobarra04Direito = true;
                        VetorPersonagem2.Y -= (float)Terreno.Velocidade;
                        if (Colidindobarra05)
                            VetorPersonagem2.Y = Terreno.VetorTerreno5.Y - 80;
                        PararColisao52 = true;
                    }
                    else
                        Colidindobarra05 = false;

                    if (ColisaoBarra5Direito2)
                    {
                        Colidindobarra05 = true;
                        VetorPersonagem2.Y -= (float)Terreno.Velocidade;
                        if (Colidindobarra05Direito)
                            VetorPersonagem2.Y = Terreno.VetorTerreno5Direito.Y - 80;
                        PararColisao52 = true;
                    }
                    else
                        Colidindobarra05Direito = false;

                }
            }
            #endregion

            #region Animação Win/Lose
            if (VetorPersonagem.Y < -70 && ColisaoBarra02 == true ||
            VetorPersonagem.Y < -70 && ColisaoBarraDireito2 == true ||
            VetorPersonagem.Y < -70 && ColisaoBarra22 == true ||
            VetorPersonagem.Y < -70 && ColisaoBarra2Direito2 == true ||
            VetorPersonagem.Y < -70 && ColisaoBarra32 == true ||
            VetorPersonagem.Y < -70 && ColisaoBarra3Direito2 == true ||
            VetorPersonagem.Y < -70 && ColisaoBarra42 == true ||
            VetorPersonagem.Y < -70 && ColisaoBarra4Direito2 == true ||
            VetorPersonagem.Y < -70 && ColisaoBarra52 == true ||
            VetorPersonagem.Y < -70 && ColisaoBarra5Direito2 == true)
            {
                GameOver = true;
                PararC = true;

            }


            if (GameOver || Win)
            {
                timeRemaining5 = MathHelper.Max(0, timeRemaining5 - (float)gameTime.ElapsedGameTime.TotalSeconds);
            }

            if (timeRemaining5 == 0.0f)
            {
                AnimacaoWin = true;
                timeRemaining6 = MathHelper.Max(0, timeRemaining6 - (float)gameTime.ElapsedGameTime.TotalSeconds);
                timeRemaining5 = timer5;
            }
            if (timeRemaining6 == 0.0f)
            {
                AnimacaoWin = false;
                timeRemaining5 = MathHelper.Max(0, timeRemaining5 - (float)gameTime.ElapsedGameTime.TotalSeconds);
                timeRemaining6 = timer6;
            }

            if (VetorPersonagem2.Y < -70 && ColisaoBarra == true ||
            VetorPersonagem2.Y < -70 && ColisaoBarraDireito == true ||
            VetorPersonagem2.Y < -70 && ColisaoBarra2 == true ||
            VetorPersonagem2.Y < -70 && ColisaoBarra2Direito == true ||
            VetorPersonagem2.Y < -70 && ColisaoBarra3 == true ||
            VetorPersonagem2.Y < -70 && ColisaoBarra3Direito == true ||
            VetorPersonagem2.Y < -70 && ColisaoBarra4 == true ||
            VetorPersonagem2.Y < -70 && ColisaoBarra4Direito == true ||
            VetorPersonagem2.Y < -70 && ColisaoBarra5 == true ||
            VetorPersonagem2.Y < -70 && ColisaoBarra5Direito == true)
            {
                Win = true;
                PararC = true;
            }
            #endregion

            #region Gravidade
            if (PararC == false)
            {
                if (ColisaoBarra == false && ColisaoBarraDireito == false && ColisaoBarra2 == false && ColisaoBarra2Direito == false && ColisaoBarra3 == false && ColisaoBarra3Direito == false && ColisaoBarra4 == false && ColisaoBarra4Direito == false && ColisaoBarra5 == false && ColisaoBarra5Direito == false)
                {
                    ParaTerreno = true;
                    if (VetorPersonagem.Y > -70 && VetorPersonagem.Y <= 370)
                    {
                        VetorPersonagem.Y += (float)Terreno.Velocidade + 2;
                    }

                    if (VetorPersonagem.Y >= 370)
                    {
                        Terreno.VetorFundo.Y -= (int)((Terreno.Velocidade / 2) * 4);
                        Terreno.VetorFundo2.Y -= (int)((Terreno.Velocidade / 2) * 4);
                        Terreno.VetorTerreno.Y -= (float)Terreno.Velocidade * 4;
                        Terreno.VetorTerrenoDireito.Y -= (float)Terreno.Velocidade * 4;
                        Terreno.VetorTerreno2.Y -= (float)Terreno.Velocidade * 4;
                        Terreno.VetorTerreno2Direito.Y -= (float)Terreno.Velocidade * 4;
                        Terreno.VetorTerreno3.Y -= (float)Terreno.Velocidade * 4;
                        Terreno.VetorTerreno3Direito.Y -= (float)Terreno.Velocidade * 4;
                        Terreno.VetorTerreno4.Y -= (float)Terreno.Velocidade * 4;
                        Terreno.VetorTerreno4Direito.Y -= (float)Terreno.Velocidade * 4;
                        Terreno.VetorTerreno5.Y -= (float)Terreno.Velocidade * 4;
                        Terreno.VetorTerreno5Direito.Y -= (float)Terreno.Velocidade * 4;
                        VetorPersonagem2.Y -= (float)Terreno.Velocidade * 4;
                        Itens.VetorItem.Y -= (float)Terreno.Velocidade * 4;
                        Itens.VetorItem2.Y -= (float)Terreno.Velocidade * 4;
                        Itens.VetorItem3.Y -= (float)Terreno.Velocidade * 4;


                    }
                }else
                    ParaTerreno = false;

                if (ColisaoBarra02 == false && ColisaoBarraDireito2 == false && ColisaoBarra22 == false && ColisaoBarra2Direito2 == false && ColisaoBarra32 == false && ColisaoBarra3Direito2 == false && ColisaoBarra42 == false && ColisaoBarra4Direito2 == false && ColisaoBarra52 == false && ColisaoBarra5Direito2 == false)
                {
                    ParaTerreno2 = true;
                    if (VetorPersonagem2.Y > -70 && VetorPersonagem2.Y <= 370)
                    {
                        VetorPersonagem2.Y += Terreno.Velocidade + 2;
                    }

                    if (VetorPersonagem2.Y >= 370)
                    {
                        Terreno.VetorFundo.Y -= (int)((Terreno.Velocidade / 2) * 4);
                        Terreno.VetorFundo2.Y -= (int)((Terreno.Velocidade / 2) * 4);
                        Terreno.VetorTerreno.Y -= (float)Terreno.Velocidade * 4;
                        Terreno.VetorTerrenoDireito.Y -= (float)Terreno.Velocidade * 4;
                        Terreno.VetorTerreno2.Y -= (float)Terreno.Velocidade * 4;
                        Terreno.VetorTerreno2Direito.Y -= (float)Terreno.Velocidade * 4;
                        Terreno.VetorTerreno3.Y -= (float)Terreno.Velocidade * 4;
                        Terreno.VetorTerreno3Direito.Y -= (float)Terreno.Velocidade * 4;
                        Terreno.VetorTerreno4.Y -= (float)Terreno.Velocidade * 4;
                        Terreno.VetorTerreno4Direito.Y -= (float)Terreno.Velocidade * 4;
                        Terreno.VetorTerreno5.Y -= (float)Terreno.Velocidade * 4;
                        Terreno.VetorTerreno5Direito.Y -= (float)Terreno.Velocidade * 4;                        
                        VetorPersonagem.Y -= (float)Terreno.Velocidade * 4;                      
                        Itens.VetorItem.Y -= (float)Terreno.Velocidade * 4;
                        Itens.VetorItem2.Y -= (float)Terreno.Velocidade * 4;
                        Itens.VetorItem3.Y -= (float)Terreno.Velocidade * 4;


                    }
                }else
                    ParaTerreno2 = false;
            }
            #endregion

            #region Inteligencia Artificial
            if (Instrucoes.SinglePlayer2 && timeRemaining12 == 0.0f)
            {
                if (VetorPersonagem.Y > -70 && VetorPersonagem2.Y > -70)
                {
                    if (timeRemaining4 == 0.0f)
                    {
                        if (VetorPersonagem2.X > Terreno.VetorTerreno.X || VetorPersonagem2.X < Terreno.VetorTerrenoDireito.X)
                        {

                            if (ColisaoBarra02)
                            {
                                DestravarBarra1 = true;
                                VetorPersonagem2.X += VelocidadePersonagem2;
                                if (timeRemaining3 == 0.0f)
                                {
                                    Direita2 = true;
                                    nextFrame2 += 237;
                                    frame2 += 1;
                                    timeRemaining3 = timer3;
                                    if (frame2 == 5)
                                    {
                                        frame2 = 0;
                                        nextFrame2 = 237;
                                    }
                                }
                            }

                            if (ColisaoBarraDireito2)
                            {
                                DestravarBarra1 = true;
                                Direita2 = false;
                                VetorPersonagem2.X -= VelocidadePersonagem2;
                                if (timeRemaining3 == 0.0f)
                                {
                                    nextFrame2 += 237;
                                    frame2 += 1;
                                    timeRemaining3 = timer3;
                                    if (frame2 == 5)
                                    {
                                        frame2 = 0;
                                        nextFrame2 = 237;
                                    }
                                }
                            }
                        }

                        if (VetorPersonagem2.X > Terreno.VetorTerreno2.X || VetorPersonagem2.X < Terreno.VetorTerreno2Direito.X)
                        {
                            if (ColisaoBarra22)
                            {
                                DestravarBarra2 = true;
                                VetorPersonagem2.X += VelocidadePersonagem2;
                                if (timeRemaining3 == 0.0f)
                                {
                                    Direita2 = true;
                                    nextFrame2 += 237;
                                    frame2 += 1;
                                    timeRemaining3 = timer3;
                                    if (frame2 == 5)
                                    {
                                        frame2 = 0;
                                        nextFrame2 = 237;
                                    }
                                }
                            }

                            if (ColisaoBarra2Direito2)
                            {
                                DestravarBarra2 = true;
                                VetorPersonagem2.X -= VelocidadePersonagem2;
                                if (timeRemaining3 == 0.0f)
                                {
                                    Direita2 = false;
                                    nextFrame2 += 237;
                                    frame2 += 1;
                                    timeRemaining3 = timer3;
                                    if (frame2 == 5)
                                    {
                                        frame2 = 0;
                                        nextFrame2 = 237;
                                    }
                                }
                            }
                        }

                        if (VetorPersonagem2.X > Terreno.VetorTerreno3.X || VetorPersonagem2.X < Terreno.VetorTerreno3Direito.X)
                        {
                            if (ColisaoBarra32)
                            {
                                DestravarBarra3 = true;
                                Direita2 = true;
                                VetorPersonagem2.X += VelocidadePersonagem2;
                                if (timeRemaining3 == 0.0f)
                                {
                                    nextFrame2 += 237;
                                    frame2 += 1;
                                    timeRemaining3 = timer3;
                                    if (frame2 == 5)
                                    {
                                        frame2 = 0;
                                        nextFrame2 = 237;
                                    }
                                }
                            }

                            if (ColisaoBarra3Direito2)
                            {
                                DestravarBarra3 = true;
                                VetorPersonagem2.X -= VelocidadePersonagem2;
                                if (timeRemaining3 == 0.0f)
                                {
                                    Direita2 = false;
                                    nextFrame2 += 237;
                                    frame2 += 1;
                                    timeRemaining3 = timer3;
                                    if (frame2 == 5)
                                    {
                                        frame2 = 0;
                                        nextFrame2 = 237;
                                    }
                                }
                            }
                        }

                        if (VetorPersonagem2.X > Terreno.VetorTerreno4.X || VetorPersonagem2.X < Terreno.VetorTerreno4Direito.X)
                        {
                            if (ColisaoBarra42)
                            {
                                DestravarBarra4 = true;
                                VetorPersonagem2.X += VelocidadePersonagem2;
                                if (timeRemaining3 == 0.0f)
                                {
                                    Direita2 = true;
                                    nextFrame2 += 237;
                                    frame2 += 1;
                                    timeRemaining3 = timer3;
                                    if (frame2 == 5)
                                    {
                                        frame2 = 0;
                                        nextFrame2 = 237;
                                    }
                                }
                            }

                            if (ColisaoBarra4Direito2)
                            {
                                DestravarBarra4 = true;
                                VetorPersonagem2.X -= VelocidadePersonagem2;
                                if (timeRemaining3 == 0.0f)
                                {
                                    Direita2 = false;
                                    nextFrame2 += 237;
                                    frame2 += 1;
                                    timeRemaining3 = timer3;
                                    if (frame2 == 5)
                                    {
                                        frame2 = 0;
                                        nextFrame2 = 237;
                                    }
                                }
                            }
                        }

                        if (VetorPersonagem2.X > Terreno.VetorTerreno5.X || VetorPersonagem2.X < Terreno.VetorTerreno5Direito.X)
                        {
                            if (ColisaoBarra52)
                            {
                                DestravarBarra5 = true;
                                Direita2 = true;
                                VetorPersonagem2.X += VelocidadePersonagem2;
                                if (timeRemaining3 == 0.0f)
                                {
                                    nextFrame2 += 237;
                                    frame2 += 1;
                                    timeRemaining3 = timer3;
                                    if (frame2 == 5)
                                    {
                                        frame2 = 0;
                                        nextFrame2 = 237;
                                    }
                                }
                            }

                            if (ColisaoBarra5Direito2)
                            {
                                DestravarBarra5 = true;
                                VetorPersonagem2.X -= VelocidadePersonagem2;
                                if (timeRemaining3 == 0.0f)
                                {
                                    Direita2 = false;
                                    nextFrame2 += 237;
                                    frame2 += 1;
                                    timeRemaining3 = timer3;
                                    if (frame2 == 5)
                                    {
                                        frame2 = 0;
                                        nextFrame2 = 237;
                                    }
                                }
                            }
                        }





                        if (ColisaoBarra02 == true || ColisaoBarraDireito2 == true)
                        {
                            DestravarBarra2 = false;
                            DestravarBarra3 = false;
                            DestravarBarra4 = false;
                            DestravarBarra5 = false;
                            DestravarBarra1 = true;
                        }
                        if (ColisaoBarra22 == true || ColisaoBarra2Direito2 == true)
                        {
                            DestravarBarra1 = false;
                            DestravarBarra3 = false;
                            DestravarBarra4 = false;
                            DestravarBarra5 = false;
                            DestravarBarra2 = true;
                        }
                        if (ColisaoBarra32 == true || ColisaoBarra3Direito2 == true)
                        {
                            DestravarBarra4 = false;
                            DestravarBarra5 = false;
                            DestravarBarra2 = false;
                            DestravarBarra1 = false;
                            DestravarBarra3 = true;
                        }
                        if (ColisaoBarra42 == true || ColisaoBarra4Direito2 == true)
                        {

                            DestravarBarra1 = false;
                            DestravarBarra2 = false;
                            DestravarBarra3 = false;
                            DestravarBarra4 = true;
                            DestravarBarra5 = false;
                        }
                        if (ColisaoBarra52 == true || ColisaoBarra5Direito2 == true)
                        {
                            DestravarBarra1 = false;
                            DestravarBarra2 = false;
                            DestravarBarra3 = false;
                            DestravarBarra4 = false;
                            DestravarBarra5 = true;
                        }




                        if (ColisaoBarra02 == false && VetorPersonagem2.X <= Terreno.VetorTerreno2.X + 775 && DestravarBarra1 == true && ColisaoBarraDireito2 == false && ColisaoBarra22 == false && ColisaoBarra2Direito2 == false && ColisaoBarra32 == false && ColisaoBarra3Direito2 == false && ColisaoBarra42 == false && ColisaoBarra4Direito2 == false && ColisaoBarra52 == false && ColisaoBarra5Direito2 == false)
                        {
                            Direita2 = true;
                            VetorPersonagem2.X += VelocidadePersonagem2;
                            if (timeRemaining3 == 0.0f)
                            {
                                nextFrame2 += 237;
                                frame2 += 1;
                                timeRemaining3 = timer3;
                                if (frame2 == 5)
                                {
                                    frame2 = 0;
                                    nextFrame2 = 237;
                                }
                            }
                        }
                        if (ColisaoBarra02 == false && VetorPersonagem2.X >= Terreno.VetorTerreno2.X + 870 && DestravarBarra1 == true && ColisaoBarraDireito2 == false && ColisaoBarra22 == false && ColisaoBarra2Direito2 == false && ColisaoBarra32 == false && ColisaoBarra3Direito2 == false && ColisaoBarra42 == false && ColisaoBarra4Direito2 == false && ColisaoBarra52 == false && ColisaoBarra5Direito2 == false)
                        {
                            VetorPersonagem2.X -= VelocidadePersonagem2;
                            if (timeRemaining3 == 0.0f)
                            {
                                Direita2 = false;
                                nextFrame2 += 237;
                                frame2 += 1;
                                timeRemaining3 = timer3;
                                if (frame2 == 5)
                                {
                                    frame2 = 0;
                                    nextFrame2 = 237;
                                }
                            }
                        }

                        if (ColisaoBarra02 == false && VetorPersonagem2.X <= Terreno.VetorTerreno3.X + 775 && DestravarBarra2 == true && ColisaoBarraDireito2 == false && ColisaoBarra22 == false && ColisaoBarra2Direito2 == false && ColisaoBarra32 == false && ColisaoBarra3Direito2 == false && ColisaoBarra42 == false && ColisaoBarra4Direito2 == false && ColisaoBarra52 == false && ColisaoBarra5Direito2 == false)
                        {
                            Direita2 = true;
                            VetorPersonagem2.X += VelocidadePersonagem2;
                            if (timeRemaining3 == 0.0f)
                            {
                                nextFrame2 += 237;
                                frame2 += 1;
                                timeRemaining3 = timer3;
                                if (frame2 == 5)
                                {
                                    frame2 = 0;
                                    nextFrame2 = 237;
                                }
                            }
                        }
                        if (ColisaoBarra02 == false && VetorPersonagem2.X >= Terreno.VetorTerreno3.X + 870 && DestravarBarra2 == true && ColisaoBarraDireito2 == false && ColisaoBarra22 == false && ColisaoBarra2Direito2 == false && ColisaoBarra32 == false && ColisaoBarra3Direito2 == false && ColisaoBarra42 == false && ColisaoBarra4Direito2 == false && ColisaoBarra52 == false && ColisaoBarra5Direito2 == false)
                        {
                            VetorPersonagem2.X -= VelocidadePersonagem2;
                            if (timeRemaining3 == 0.0f)
                            {
                                Direita2 = false;
                                nextFrame2 += 237;
                                frame2 += 1;
                                timeRemaining3 = timer3;
                                if (frame2 == 5)
                                {
                                    frame2 = 0;
                                    nextFrame2 = 237;
                                }
                            }
                        }

                        if (ColisaoBarra02 == false && VetorPersonagem2.X <= Terreno.VetorTerreno4.X + 775 && DestravarBarra3 == true && ColisaoBarraDireito2 == false && ColisaoBarra22 == false && ColisaoBarra2Direito2 == false && ColisaoBarra32 == false && ColisaoBarra3Direito2 == false && ColisaoBarra42 == false && ColisaoBarra4Direito2 == false && ColisaoBarra52 == false && ColisaoBarra5Direito2 == false)
                        {
                            Direita2 = true;
                            VetorPersonagem2.X += VelocidadePersonagem2;
                            if (timeRemaining3 == 0.0f)
                            {
                                nextFrame2 += 237;
                                frame2 += 1;
                                timeRemaining3 = timer3;
                                if (frame2 == 5)
                                {
                                    frame2 = 0;
                                    nextFrame2 = 237;
                                }
                            }
                        }
                        if (ColisaoBarra02 == false && VetorPersonagem2.X >= Terreno.VetorTerreno4.X + 870 && DestravarBarra3 == true && ColisaoBarraDireito2 == false && ColisaoBarra22 == false && ColisaoBarra2Direito2 == false && ColisaoBarra32 == false && ColisaoBarra3Direito2 == false && ColisaoBarra42 == false && ColisaoBarra4Direito2 == false && ColisaoBarra52 == false && ColisaoBarra5Direito2 == false)
                        {
                            VetorPersonagem2.X -= VelocidadePersonagem2;
                            if (timeRemaining3 == 0.0f)
                            {
                                Direita2 = false;
                                nextFrame2 += 237;
                                frame2 += 1;
                                timeRemaining3 = timer3;
                                if (frame2 == 5)
                                {
                                    frame2 = 0;
                                    nextFrame2 = 237;
                                }
                            }
                        }
                        if (ColisaoBarra02 == false && VetorPersonagem2.X <= Terreno.VetorTerreno5.X + 775 && DestravarBarra4 == true && ColisaoBarraDireito2 == false && ColisaoBarra22 == false && ColisaoBarra2Direito2 == false && ColisaoBarra32 == false && ColisaoBarra3Direito2 == false && ColisaoBarra42 == false && ColisaoBarra4Direito2 == false && ColisaoBarra52 == false && ColisaoBarra5Direito2 == false)
                        {
                            Direita2 = true;
                            VetorPersonagem2.X += VelocidadePersonagem2;
                            if (timeRemaining3 == 0.0f)
                            {
                                nextFrame2 += 237;
                                frame2 += 1;
                                timeRemaining3 = timer3;
                                if (frame2 == 5)
                                {
                                    frame2 = 0;
                                    nextFrame2 = 237;
                                }
                            }
                        }
                        if (ColisaoBarra02 == false && VetorPersonagem2.X >= Terreno.VetorTerreno5.X + 870 && DestravarBarra4 == true && ColisaoBarraDireito2 == false && ColisaoBarra22 == false && ColisaoBarra2Direito2 == false && ColisaoBarra32 == false && ColisaoBarra3Direito2 == false && ColisaoBarra42 == false && ColisaoBarra4Direito2 == false && ColisaoBarra52 == false && ColisaoBarra5Direito2 == false)
                        {
                            VetorPersonagem2.X -= VelocidadePersonagem2;
                            if (timeRemaining3 == 0.0f)
                            {
                                Direita2 = false;
                                nextFrame2 += 237;
                                frame2 += 1;
                                timeRemaining3 = timer3;
                                if (frame2 == 5)
                                {
                                    frame2 = 0;
                                    nextFrame2 = 237;
                                }
                            }
                        }
                        if (ColisaoBarra02 == false && VetorPersonagem2.X <= Terreno.VetorTerreno.X + 775 && DestravarBarra5 == true && ColisaoBarraDireito2 == false && ColisaoBarra22 == false && ColisaoBarra2Direito2 == false && ColisaoBarra32 == false && ColisaoBarra3Direito2 == false && ColisaoBarra42 == false && ColisaoBarra4Direito2 == false && ColisaoBarra52 == false && ColisaoBarra5Direito2 == false)
                        {
                            Direita2 = true;
                            VetorPersonagem2.X += VelocidadePersonagem2;
                            if (timeRemaining3 == 0.0f)
                            {
                                nextFrame2 += 237;
                                frame2 += 1;
                                timeRemaining3 = timer3;
                                if (frame2 == 5)
                                {
                                    frame2 = 0;
                                    nextFrame2 = 237;
                                }
                            }
                        }
                        if (ColisaoBarra02 == false && VetorPersonagem2.X >= Terreno.VetorTerreno.X + 870 && DestravarBarra5 == true && ColisaoBarraDireito2 == false && ColisaoBarra22 == false && ColisaoBarra2Direito2 == false && ColisaoBarra32 == false && ColisaoBarra3Direito2 == false && ColisaoBarra42 == false && ColisaoBarra4Direito2 == false && ColisaoBarra52 == false && ColisaoBarra5Direito2 == false)
                        {
                            VetorPersonagem2.X -= VelocidadePersonagem2;
                            if (timeRemaining3 == 0.0f)
                            {
                                Direita2 = false;
                                nextFrame2 += 237;
                                frame2 += 1;
                                timeRemaining3 = timer3;
                                if (frame2 == 5)
                                {
                                    frame2 = 0;
                                    nextFrame2 = 237;
                                }
                            }
                        }

                    }
                }
            }
            #endregion

            #region Resultado da Partida 

            if (VetorPersonagem.Y < -70 && Instrucoes.SinglePlayer2)
            {
                ComputerWin = true; 
            }
            else
                ComputerWin = false;


            if (VetorPersonagem2.Y < -70 && Instrucoes.SinglePlayer2)
            {
                Player1Win = true;
            }
            else
                Player1Win = false;

            if (VetorPersonagem.Y < -70 && Instrucoes.MultiPlayer2)
            {
                Player2Win = true;
            }
            else
                Player2Win = false; 

            if (VetorPersonagem2.Y < -70 && Instrucoes.MultiPlayer2)
            {
                Player1Ganhou = true;
            }
            else
                Player1Ganhou = false;
            #endregion
        }

        public void Draw(SpriteBatch spritebatch)
        {
            #region Renderizando imagens
            if (Direita && Win == false && AnimacaoPulo == false)
            {
                if (VetorPersonagem.Y > -69)
                    spritebatch.Draw(Personagem01, new Rectangle((int)VetorPersonagem.X, (int)VetorPersonagem.Y, 60, 90), RectPersonagem, Color.White);
            }
            if (Direita == false && Win == false && AnimacaoPulo == false)
            {
                if (VetorPersonagem.Y > -69)
                    spritebatch.Draw(Personagem2, new Rectangle((int)VetorPersonagem.X, (int)VetorPersonagem.Y, 60, 90), RectPersonagem, Color.White);
            }
            if (Direita2 && GameOver == false)
            {
                if (VetorPersonagem2.Y > -69)
                    spritebatch.Draw(PersonagemPc, new Rectangle((int)VetorPersonagem2.X, (int)VetorPersonagem2.Y, 60, 90), RectPersonagem2, Color.Red);
            }
            if (Direita2 == false && GameOver == false)
            {
                if (VetorPersonagem2.Y > -69)
                    spritebatch.Draw(Personagem2Pc, new Rectangle((int)VetorPersonagem2.X, (int)VetorPersonagem2.Y, 60, 90), RectPersonagem2, Color.Red);
            }

            if (Instrucoes.SinglePlayer2)
            {
                if (Win == true && AnimacaoWin == true)
                {
                spritebatch.Draw(MarcacaoPlayer1, new Rectangle((int)VetorPersonagem.X, (int)VetorPersonagem.Y - 30, 55, 30), Color.White);
                }else if(Direita){                
                spritebatch.Draw(MarcacaoPlayer1, new Rectangle((int)VetorPersonagem.X , (int)VetorPersonagem.Y - 20, 55, 30), Color.White);
                }else
                spritebatch.Draw(MarcacaoPlayer1, new Rectangle((int)VetorPersonagem.X, (int)VetorPersonagem.Y - 20, 55, 30), Color.White);


                if (GameOver == true && AnimacaoWin == true)
                {
                spritebatch.Draw(MarcacaoPc, new Rectangle((int)VetorPersonagem2.X, (int)VetorPersonagem2.Y - 30, 55, 30), Color.White);
                }
                else if(Direita2){                
                spritebatch.Draw(MarcacaoPc, new Rectangle((int)VetorPersonagem2.X , (int)VetorPersonagem2.Y - 20, 55, 30), Color.White);
                }else
                spritebatch.Draw(MarcacaoPc, new Rectangle((int)VetorPersonagem2.X, (int)VetorPersonagem2.Y - 20, 55, 30), Color.White);
            }

            if (Instrucoes.MultiPlayer2)
            {
                if (Win == true && AnimacaoWin == true)
                {
                spritebatch.Draw(MarcacaoPlayer1, new Rectangle((int)VetorPersonagem.X, (int)VetorPersonagem.Y - 30, 55, 30), Color.White);
                }else if(Direita){                
                spritebatch.Draw(MarcacaoPlayer1, new Rectangle((int)VetorPersonagem.X , (int)VetorPersonagem.Y - 20, 55, 30), Color.White);
                }else
                spritebatch.Draw(MarcacaoPlayer1, new Rectangle((int)VetorPersonagem.X, (int)VetorPersonagem.Y - 20, 55, 30), Color.White);

                if (GameOver == true && AnimacaoWin == true)
                {
                spritebatch.Draw(MarcacaoPlayer2, new Rectangle((int)VetorPersonagem2.X, (int)VetorPersonagem2.Y - 30, 55, 30), Color.White);
                }else if(Direita2){                
                spritebatch.Draw(MarcacaoPlayer2, new Rectangle((int)VetorPersonagem2.X , (int)VetorPersonagem2.Y - 20, 55, 30), Color.White);
                }else
                spritebatch.Draw(MarcacaoPlayer2, new Rectangle((int)VetorPersonagem2.X, (int)VetorPersonagem2.Y - 20, 55, 30), Color.White);

            }



           if (ComputerWin)
                spritebatch.Draw(GameOverT, new Vector2(0, 0), Color.White);
            
            if (Player1Win)
                spritebatch.Draw(VoceVenceuT, new Vector2(0, 0), Color.White);
           
            if (Player2Win)
                spritebatch.Draw(Player2WinT, new Vector2(0, 0), Color.White);
            

            if (VetorPersonagem2.Y < -70 && Instrucoes.MultiPlayer2)
                spritebatch.Draw(Player1WinT, new Vector2(0, 0), Color.White);

            if (VetorPersonagem.Y <= -69 && VetorPersonagem2.Y <= -69)
            {
                spritebatch.Draw(EmpatouT, new Vector2(0, 0), Color.White);
            }
            

            if (GameOver == true && AnimacaoWin == false)
            {
                spritebatch.Draw(amendoim_c1, new Rectangle((int)VetorPersonagem2.X, (int)VetorPersonagem2.Y , 60, 90), Color.Red);
            }
            if (GameOver == true && AnimacaoWin == true)
            {
                spritebatch.Draw(amendoim_c2, new Rectangle((int)VetorPersonagem2.X, (int)VetorPersonagem2.Y - 10, 60, 90), Color.Red);
            }


            if (Win == true && AnimacaoWin == false)
            {
                spritebatch.Draw(amendoim_c1, new Rectangle((int)VetorPersonagem.X, (int)VetorPersonagem.Y , 60, 90), Color.White);
            }
            if (Win == true && AnimacaoWin == true)
            {
                spritebatch.Draw(amendoim_c2, new Rectangle((int)VetorPersonagem.X, (int)VetorPersonagem.Y - 10, 60, 90), Color.White);
            }
            #endregion
        }

    }
}
